package com.ruoyi.thoroughfare.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;

import javax.validation.constraints.*;

/**
 * 用户管理业务对象
 *
 * @author Zach
 * @date 2023-11-14
 */

@Data
public class AppUserBo {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 手机号
     */
    @NotNull(message = "手机号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String phoneNumber;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userName;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userPassword;

    /**
     * 用户类型
     */
    @NotNull(message = "用户类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userType;

    /**
     * 用户等级
     */
    @NotNull(message = "用户等级不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userLevel;

    /**
     * 身份证号码
     */
    @NotBlank(message = "身份证号码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userIdCard;

    /**
     * 身份证照片
     */
    @NotBlank(message = "身份证照片不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userIdCardPath;

    /**
     * 用户头像地址
     */
    @NotBlank(message = "用户头像地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userPath;

    /**
     * 真实姓名
     */
    @NotBlank(message = "真实姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userIdName;

    /**
     * 实名状态
     */
    @NotNull(message = "实名状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userRealStatus;

    /**
     * 上级
     */
    @NotNull(message = "上级不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long superUserId;

    /**
     * 认证状态
     */
    @NotNull(message = "认证状态不能为空", groups = { EditGroup.class })
    private Long certificationStatus;

    /**
     * 用户状态
     */
    @NotNull(message = "用户状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long status;


}
